TPTP Axioms File: LCL015^0.ax


%------------------------------------------------------------------------------
% File     : LCL015^0 : TPTP v8.2.0. Released v5.5.0.
% Domain   : Logic Calculi (Quantified multimodal logic, cumulative domains)
% Axioms   : Embedding of quantified multimodal logic in simple type theory
% Version  : [Ben12] axioms.
% English  : 

% Refs     : [Ben12] Benzmueller (2012), Email to Geoff Sutcliffe
% Source   : [Ben12]
% Names    : 

% Status   : Satisfiable
% Syntax   : Number of formulae    :   64 (  31 unt;  33 typ;  30 def)
%            Number of atoms       :   91 (  34 equ;   0 cnn)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :  128 (   4   ~;   4   |;   8   &; 103   @)
%                                         (   0 <=>;   9  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    5 (   1 avg; 103 nst)
%            Number of types       :    3 (   1 usr)
%            Number of type conns  :  170 ( 170   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   34 (  32 usr;   1 con; 0-3 aty)
%            Number of variables   :   83 (  46   ^  30   !;   7   ?;  83   :)
% SPC      : THF_SAT_EQU

% Comments : LCL015^1 and this are essentially LCL013^0.ax with the following 
%            modifications to support cumulative domains:
%            - addition of a predicate exists_in_world
%            - use of this predicate in a modified definition mforall_ind
%            - use of this predicate in an added axiom for cumulative domains
%------------------------------------------------------------------------------
%----Declaration of additional base type mu
thf(mu_type,type,
    mu: $tType ).

%----Equality
thf(qmltpeq_type,type,
    qmltpeq: mu > mu > $i > $o ).

% originale Definition
%thf(qmltpeq,definition,
%    ( qmltpeq
%    = ( ^ [X: mu,Y: mu,W: $i] : ( X = Y ) ) )).

% erweiterte Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
% = ( ^ [X: mu,Y: mu,W: $i] : (![P: mu > $i > $o]: ( (P @ X @ W) <=> (P @ Y @ W) ) ) ) )).

%  Leibnitz-Definition
%thf(qmltpeq,definition,
% ( qmltpeq
%  = ( ^ [X: mu,Y: mu,W: $i] : (! [P: mu > $o]: ( (P @ X) <=> (P @ Y) ) ) ) )).

thf(meq_prop_type,type,
    meq_prop: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(meq_prop,definition,
    ( meq_prop
    = ( ^ [X: $i > $o,Y: $i > $o,W: $i] :
          ( ( X @ W )
          = ( Y @ W ) ) ) ) ).

%----Modal operators not, or, box, Pi 
thf(mnot_type,type,
    mnot: ( $i > $o ) > $i > $o ).

thf(mnot,definition,
    ( mnot
    = ( ^ [Phi: $i > $o,W: $i] :
          ~ ( Phi @ W ) ) ) ).

thf(mor_type,type,
    mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mor,definition,
    ( mor
    = ( ^ [Phi: $i > $o,Psi: $i > $o,W: $i] :
          ( ( Phi @ W )
          | ( Psi @ W ) ) ) ) ).

thf(mbox_type,type,
    mbox: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mbox,definition,
    ( mbox
    = ( ^ [R: $i > $i > $o,Phi: $i > $o,W: $i] :
        ! [V: $i] :
          ( ~ ( R @ W @ V )
          | ( Phi @ V ) ) ) ) ).

thf(mforall_prop_type,type,
    mforall_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).

thf(mforall_prop,definition,
    ( mforall_prop
    = ( ^ [Phi: ( $i > $o ) > $i > $o,W: $i] :
        ! [P: $i > $o] : ( Phi @ P @ W ) ) ) ).

%----Further modal operators
thf(mtrue_type,type,
    mtrue: $i > $o ).

thf(mtrue,definition,
    ( mtrue
    = ( ^ [W: $i] : $true ) ) ).

thf(mfalse_type,type,
    mfalse: $i > $o ).

thf(mfalse,definition,
    ( mfalse
    = ( mnot @ mtrue ) ) ).

thf(mand_type,type,
    mand: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mand,definition,
    ( mand
    = ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mor @ ( mnot @ Phi ) @ ( mnot @ Psi ) ) ) ) ) ).

thf(mimplies_type,type,
    mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mimplies,definition,
    ( mimplies
    = ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Phi ) @ Psi ) ) ) ).

thf(mimplied_type,type,
    mimplied: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mimplied,definition,
    ( mimplied
    = ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mor @ ( mnot @ Psi ) @ Phi ) ) ) ).

thf(mequiv_type,type,
    mequiv: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mequiv,definition,
    ( mequiv
    = ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mand @ ( mimplies @ Phi @ Psi ) @ ( mimplies @ Psi @ Phi ) ) ) ) ).

thf(mxor_type,type,
    mxor: ( $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mxor,definition,
    ( mxor
    = ( ^ [Phi: $i > $o,Psi: $i > $o] : ( mnot @ ( mequiv @ Phi @ Psi ) ) ) ) ).

thf(mdia_type,type,
    mdia: ( $i > $i > $o ) > ( $i > $o ) > $i > $o ).

thf(mdia,definition,
    ( mdia
    = ( ^ [R: $i > $i > $o,Phi: $i > $o] : ( mnot @ ( mbox @ R @ ( mnot @ Phi ) ) ) ) ) ).

%--- (new for cumulative)
%---Declaration of existence predicate for simulating cumulative domain
thf(exists_in_world_type,type,
    exists_in_world: mu > $i > $o ).

%----The domains are non-empty
thf(nonempty_ax,axiom,
    ! [V: $i] :
    ? [X: mu] : ( exists_in_world @ X @ V ) ).

thf(mforall_ind_type,type,
    mforall_ind: ( mu > $i > $o ) > $i > $o ).

%--- (new for cumulative)
thf(mforall_ind,definition,
    ( mforall_ind
    = ( ^ [Phi: mu > $i > $o,W: $i] :
        ! [X: mu] :
          ( ( exists_in_world @ X @ W )
         => ( Phi @ X @ W ) ) ) ) ).

%thf(mforall_ind,definition,
%    ( mforall_ind
%    = ( ^ [Phi: mu > $i > $o,W: $i] :
%        ! [X: mu] :
%          ( Phi @ X @ W ) ) )).

thf(mexists_ind_type,type,
    mexists_ind: ( mu > $i > $o ) > $i > $o ).

thf(mexists_ind,definition,
    ( mexists_ind
    = ( ^ [Phi: mu > $i > $o] :
          ( mnot
          @ ( mforall_ind
            @ ^ [X: mu] : ( mnot @ ( Phi @ X ) ) ) ) ) ) ).

thf(mexists_prop_type,type,
    mexists_prop: ( ( $i > $o ) > $i > $o ) > $i > $o ).

thf(mexists_prop,definition,
    ( mexists_prop
    = ( ^ [Phi: ( $i > $o ) > $i > $o] :
          ( mnot
          @ ( mforall_prop
            @ ^ [P: $i > $o] : ( mnot @ ( Phi @ P ) ) ) ) ) ) ).

%----Definition of properties of accessibility relations
thf(mreflexive_type,type,
    mreflexive: ( $i > $i > $o ) > $o ).

thf(mreflexive,definition,
    ( mreflexive
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] : ( R @ S @ S ) ) ) ).

thf(msymmetric_type,type,
    msymmetric: ( $i > $i > $o ) > $o ).

thf(msymmetric,definition,
    ( msymmetric
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i] :
          ( ( R @ S @ T )
         => ( R @ T @ S ) ) ) ) ).

thf(mserial_type,type,
    mserial: ( $i > $i > $o ) > $o ).

thf(mserial,definition,
    ( mserial
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] :
        ? [T: $i] : ( R @ S @ T ) ) ) ).

thf(mtransitive_type,type,
    mtransitive: ( $i > $i > $o ) > $o ).

thf(mtransitive,definition,
    ( mtransitive
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ T @ U ) )
         => ( R @ S @ U ) ) ) ) ).

thf(meuclidean_type,type,
    meuclidean: ( $i > $i > $o ) > $o ).

thf(meuclidean,definition,
    ( meuclidean
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( R @ T @ U ) ) ) ) ).

thf(mpartially_functional_type,type,
    mpartially_functional: ( $i > $i > $o ) > $o ).

thf(mpartially_functional,definition,
    ( mpartially_functional
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( T = U ) ) ) ) ).

thf(mfunctional_type,type,
    mfunctional: ( $i > $i > $o ) > $o ).

thf(mfunctional,definition,
    ( mfunctional
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i] :
        ? [T: $i] :
          ( ( R @ S @ T )
          & ! [U: $i] :
              ( ( R @ S @ U )
             => ( T = U ) ) ) ) ) ).

thf(mweakly_dense_type,type,
    mweakly_dense: ( $i > $i > $o ) > $o ).

thf(mweakly_dense,definition,
    ( mweakly_dense
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( R @ S @ T )
         => ? [U: $i] :
              ( ( R @ S @ U )
              & ( R @ U @ T ) ) ) ) ) ).

thf(mweakly_connected_type,type,
    mweakly_connected: ( $i > $i > $o ) > $o ).

thf(mweakly_connected,definition,
    ( mweakly_connected
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ( ( R @ T @ U )
            | ( T = U )
            | ( R @ U @ T ) ) ) ) ) ).

thf(mweakly_directed_type,type,
    mweakly_directed: ( $i > $i > $o ) > $o ).

thf(mweakly_directed,definition,
    ( mweakly_directed
    = ( ^ [R: $i > $i > $o] :
        ! [S: $i,T: $i,U: $i] :
          ( ( ( R @ S @ T )
            & ( R @ S @ U ) )
         => ? [V: $i] :
              ( ( R @ T @ V )
              & ( R @ U @ V ) ) ) ) ) ).

%----Definition of validity
thf(mvalid_type,type,
    mvalid: ( $i > $o ) > $o ).

thf(mvalid,definition,
    ( mvalid
    = ( ^ [Phi: $i > $o] :
        ! [W: $i] : ( Phi @ W ) ) ) ).

%----Definition of satisfiability
thf(msatisfiable_type,type,
    msatisfiable: ( $i > $o ) > $o ).

thf(msatisfiable,definition,
    ( msatisfiable
    = ( ^ [Phi: $i > $o] :
        ? [W: $i] : ( Phi @ W ) ) ) ).

%----Definition of countersatisfiability
thf(mcountersatisfiable_type,type,
    mcountersatisfiable: ( $i > $o ) > $o ).

thf(mcountersatisfiable,definition,
    ( mcountersatisfiable
    = ( ^ [Phi: $i > $o] :
        ? [W: $i] :
          ~ ( Phi @ W ) ) ) ).

%----Definition of invalidity
thf(minvalid_type,type,
    minvalid: ( $i > $o ) > $o ).

thf(minvalid,definition,
    ( minvalid
    = ( ^ [Phi: $i > $o] :
        ! [W: $i] :
          ~ ( Phi @ W ) ) ) ).

%------------------------------------------------------------------------------